package com.zatech.cgnci.project.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

/**
 * <p>
 * 未到期责任准备金台账表
 * </p>
 *
 * @author Generator
 * @since 2025-01-23
 */
@Getter
@Setter
@Accessors(chain = true)
@TableName("cgnci_unearned_premium_reserve_ledger")
@ApiModel(value = "CgnciUnearnedPremiumReserveLedgerDO对象", description = "未到期责任准备金台账表")
public class CgnciUnearnedPremiumReserveLedgerDO implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty("ID")
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    @ApiModelProperty("台账ID")
    private Long registerId;

    @ApiModelProperty("评估日期")
    private Date valuationDate;
    @ApiModelProperty("项目名称")
    private String projectName;
    @ApiModelProperty("保单号")
    private String policyNo;
    @ApiModelProperty("批单号")
    private String endorsementNo;
    @ApiModelProperty("离/在岸")
    private String insuredType;
    @ApiModelProperty("离岸业务归属地")
    private String offshoreTerritory;
    @ApiModelProperty("险类")
    private String riskClass;
    @ApiModelProperty("险种")
    private String riskSubType;
    @ApiModelProperty("起保日期")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT-8")
    private Date policyStartDate;

    @ApiModelProperty("终保日期")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT-8")
    private Date policyEndDate;

    @ApiModelProperty("入账日期")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT-8")
    private Date postingDate;

    @ApiModelProperty("保单币种")
    private String policyCurrency;

    @ApiModelProperty("分入保费")
    private BigDecimal engagedPremium;

    @ApiModelProperty("分出保费")
    private BigDecimal cededPremium;

    @ApiModelProperty("应计入本期净保费")
    private BigDecimal netPremium;

    @ApiModelProperty("保单获取成本-分保费用")
    private BigDecimal reinsurancePremium;

    @ApiModelProperty("保单获取成本-佣金及手续费")
    private BigDecimal commissionsFees;

    @ApiModelProperty("保单获取成本-摊回分保费用")
    private BigDecimal procedurePremium;

    @ApiModelProperty("保单获取成本-小计")
    private BigDecimal subtotalPremium;

    @ApiModelProperty("期初-原保单提取未到期责任准备金")
    private BigDecimal policyAcquireInitial;

    @ApiModelProperty("期初-应收分保未到期责任准备金")
    private BigDecimal receivablesInitialUpr;

    @ApiModelProperty("期初-原保单递延保单获取成本")
    private BigDecimal originalPolicyInitial;

    @ApiModelProperty("期初-分出保单递延获取成本")
    private BigDecimal cededPolicyInitial;

    @ApiModelProperty("期初-应收分保递延获取成本")
    private BigDecimal receivablesInitial;

    @ApiModelProperty("期末-原保单提取未到期责任准备金")
    private BigDecimal policyAcquirePeriod;

    @ApiModelProperty("期末-应收分保未到期责任准备金")
    private BigDecimal receivablesPeriodUpr;

    @ApiModelProperty("期末-原保单递延保单获取成本")
    private BigDecimal originalPolicyPeriod;

    @ApiModelProperty("期末-分出保单递延获取成本")
    private BigDecimal cededPolicyPeriod;

    @ApiModelProperty("期末-应收分保递延获取成本")
    private BigDecimal receivablesPeriod;

    @ApiModelProperty("未到期责任准备金-期初数")
    private BigDecimal initialAmount;

    @ApiModelProperty("未到期责任准备金-期末数")
    private BigDecimal periodAmount;

    @ApiModelProperty("未到期责任准备金-提转差")
    private BigDecimal extractionCessionDifference;

    @ApiModelProperty("累计已赚保费-会计年度")
    private BigDecimal accumulatedEarnedPremium;

    @ApiModelProperty("承保利润-原币")
    private BigDecimal underwritingProfit;

    @ApiModelProperty("分入合同投资成分占比-纯溢手续费比例")
    private BigDecimal engagedFeeRate;

    @ApiModelProperty("分出合同投资成分占比-纯溢手续费比例")
    private BigDecimal cededFeeRate;

    @ApiModelProperty("跟单保险获取现金流比例")
    private BigDecimal cashFlowRatio;

    @ApiModelProperty("非跟单保险获取现金流比例")
    private BigDecimal nonCashFlowRatio;

    @ApiModelProperty("创建时间")
    private Date createTime;

    @ApiModelProperty("创建人")
    private String creator;

    @ApiModelProperty("更新时间")
    private Date updateTime;

    @ApiModelProperty("更新人")
    private String updater;


}
